/**
 * This file is part of the flushOS project.
 *
 * Somewhat based on Linux kernel.
 *
 * Copyright (C) 2007 triton
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 */

#ifndef __TYPES_H__
#define __TYPES_H__

#include <asm-i386/types.h>
#include <asm-i386/posix_types.h>
#include <stddef.h>

/* stdbool.h */

typedef _Bool	bool;

enum
{
	false = 0,
	true  = 1
};

/* inttypes.h */

typedef		__u8		uint8_t;
typedef		__s8		int8_t;
typedef		__u16		uint16_t;
typedef		__s16		int16_t;
typedef		__u32		uint32_t;
typedef		__s32		int32_t;
typedef		unsigned int uint_t;

/* kernel types */

typedef __kernel_off_t			off_t;
typedef __kernel_pid_t			pid_t;
typedef __kernel_timer_t		timer_t;
typedef __kernel_clockid_t		clockid_t;

typedef __kernel_uid32_t	uid_t;
typedef __kernel_gid32_t	gid_t;
typedef __kernel_uid16_t	uid16_t;
typedef __kernel_gid16_t	gid16_t;

typedef __kernel_size_t		size_t;
typedef __kernel_ssize_t	ssize_t;
typedef __kernel_ptrdiff_t	ptrdiff_t;
typedef __kernel_time_t		time_t;
typedef __kernel_clock_t	clock_t;

#endif /* __TYPES_H__ */
